前言: 什么顺序讲?

其实最需要想一下的是怎么写行列式。

南大课本(指一层次线性代数的那本蓝色的书)上是行列式起手的讲法。这是臭名昭著的,我肯定不这样讲。《Linear Algebra Done Right》中是先从向量空间引入的,但这样就导致行列式的定义在很后面。

说实话,其实我也不是很清楚行列式到底是怎么被搞出来的,我只知道怎么算并且怎么用,但还没有理解到本质。因此这篇文章会比较唐突的引出行列式。我也不想这样但我水平真的有限。

总的来说,我会参考LADR,从向量开始介绍。

另外,本篇面向的是那些,“觉得线性代数有点枯燥但还是要学” 的大学生,或许能使你激发对知识的探索欲。

本篇的行文风格是,对于一个新内容,尽量启发性的去发现这件事,然后再写出形式化的描述并证明

向量

和我们高中学的是兼容的。 例如 a=(x,y,z) 表示一个三维向量。

对于一个更高维的,比如 n 维向量,就写 n 个分量就行。例如 v=(v1,v2vn)

所有的 n 维实向量构成的集合记为 Rn

补充:关于复数

由于我们并不强调复数,因此我们默认是在实数域里讨论。后面说到 “标量”,通常默认是指实数。

为了节省我的阳寿,后面就不打箭头了,直接用 a 表示向量。懂的都懂。

作为第一部分,我们先来把向量给折腾一圈,即使我们还没引入任何矩阵相关的概念。事实上,确实,即使不需要矩阵(或者说,线性变换),我们也可以对向量做很多事情。

线性运算

向量可以进行 线性运算:数乘、加法

数乘: v=(v1,v2,vn),则 kv=(kv1,kv2,kvn)k 是标量

加法: a=(a1,a2an),b=(b1,b2bn),则 a+b=(a1+b1,a2+b2,an+bn)

只要我们能进行 线性运算,就能做 线性组合

对于 n 个向量 v1,v2...vn,其线性组合为 v=k1v1+k2v2+knvn,其中 ki 为系数。

能做线性组合的 “对象” 并不只有向量。

例如,一堆多项式,可以做线性组合(多项式有数乘和加法)。甚至于一堆函数,定义“和”为对应位置的和,则函数也可以做线性组合。

因此 LADR 这本书上其实并不区分这些,多项式之类的东西也可以构成一个“向量空间”。

更为牛逼的是,对于函数这样的“向量”,我们甚至也可以用积分定义它的“内积”!甚至可以用这个结合柯西不等式证明一些和积分相关的不等式。我当时读到这里的时候,不禁惊叹于线性代数的美妙!

我们发现,线性组合是一个很灵活的事情。联想高中学过的 “平面向量基本定理”,如果我们有两个不共线的平面向量,我们可以用它们来线性组合出平面上的任何一个向量。是不是很牛逼!

再来看一个东西

线性相关与线性无关:对于 n 个向量 v1,v2vn,如果存在 非全零 的系数 k1,k2kn 使得其线性组合 v=0,则这 n 个向量 线性相关,否则我们称它们线性无关。

也就是说,线性无关的意思是:若要用 vi 线性组合出 0,必须系数全都是 0

这东西有啥用呢?

首先感受一下这个,我们解方程的时候,经常碰到一些 “无用方程”,比如

{x+y=1(1)y+z=2(2)x+2y+z=3(3)

你发现方程 (3) 显然是一个“无用方程”,因为它等于 (1)+(2)

事实上,我们把这些系数写成向量,“无用方程”就是在说,这个方程可以被别的方程线性组合出来,也就是说这几个方程线性相关。如果要找出“极大的有用方程”,只需要找“极大线性无关组”就可以了!

那么,我们小学时候就学过的多元一次方程组,现在我们对它有了新的见解。事实上,线性代数中关于线性方程组的内容非常多,后面还会获得更多的新的见解。

再透露一件事:对于 n 维空间,只要我们找 n 个线性无关的向量,它们就一定能组合出整个空间!

于是 “平面向量基本定理” 被推广到了 “n维向量基本定理”。是不是充满了牛逼道理!

想必,就算你是第一次接触线性代数,也一定对线性相关性的概念充满了好奇。

那接下来,我们就进一步关注:我们的这些向量,能组合出一些什么东西?我们还能用它玩出多少花样?

向量空间

概念

接下来,引入 向量空间 的概念:向量空间是一个向量组成的集合 V,满足:

  1. 存在线性运算:V 中要定义线性运算: 加法、数乘,且 V 对该运算封闭
  2. 满足运算律:“大八条”,在各种课本上都能见到

存在线性运算且封闭,定义为:

“大八条”,为:

  1. 零元素:存在零元素 0 使得 a,0+a=a+0=a
  2. 负元素:对任意 a,存在 a,使得 a+(a)=0
  3. 单位标量:存在标量 1,使得 a,1a=a
  4. 交换律:对任意 a,b 满足 a+b=b+a
  5. 结合律(两条): {a,b,cV:(a+b)+c=a+(b+c)k,lR,aV:k(la)=(kl)a
  6. 分配律(两条): {kR,a,bV:k(a+b)=ka+kbk,lR,aV:(k+l)a=ka+la

对于给定的 V 和定义好的加法、数乘运算,“大八条”是只针对运算本身而言的,而“封闭”的限制主要针对 V。当然,“大八条”也和 V 有关,有时候,某个运算在 V 上没有交换律,但是在 V 的子集上就满足交换律了,也是可能的。

向量空间的“空间”并不是凭空来的。例如,平面上的一条过原点的直线,直线上的点表示的向量就组成一个向量空间(可以自行验证)。向量空间的确可以表示一块“空间”,可以是直线、平面,也可以是更高维的空间。

由于我们只要定义了运算并且满足了运算律,就可以构成一个向量空间。所以向量空间的形式是很自由的。比如,我们对定义在 R 上的函数定义加法和数乘,那它就可以构成一个向量空间。

向量空间可以是无穷维的,比如上述函数向量空间。不过我们主要关注有限维的向量空间,因为我们很难研究一个无穷维的空间。

刚才我们研究的是 “n个向量”,现在,我们可以去研究 空间,也就是 无穷个向量

张成空间

现在,假设我们有了一堆向量,它们能 “组合出来” 哪些向量呢?

张成空间:记为 span{v1,v2vn},表示 {v|v=kivi},也就是说这个东西表示向量组 vi “能拼出来的向量集合”。

张成:对于空间 V,若 span{v1,v2vn}=V,则称向量组 {vi} 张成 V

(前者“张成”是形容词,代表“张成的”;后者是动词)

注意这里 ki 可以都是 0,因此 span{vi} 中包含 0。而且我们可以证明,张成空间是一个向量空间。

首先我们无需再验证 “大八条”,因为向量的加法、数乘的运算律我们已经清楚了。

其次我们验证封闭:你发现它显然封闭。证毕。

我们可以举例子感受一下。例如 v1=(1,1,0),v2=(0,1,1),S=span{v1,v2}

那么 (1,10,9)S(1,1,4)S(3,8,5)S。而且 (1,10,9)+(3,8,5)=(4,18,14)S

我们可以观察一下,发现对于 (x,y,z)S,都有 y=x+z。因此张成空间 S,实际上就是平面 xy+z=0

想像一下“张成”的过程:最开始,空间中只有虚无,从一片虚无之中,出现了两个向量,一个是 v1=(1,1,0),一个是 v2=(0,1,1),这两个向量搭成了一个 “骨架”,以这两个向量为 “骨”,不断出现了 “血肉”:这些“血肉”都是以“骨”为框架编织而成。由于我们的“框架”有所局限,它并不能编织出整个空间,只能组成一个子空间,也就是平面 xy+z。“张成”这个词,就跟这里的“编织”很像,就是给它俩拼一拼凑一凑,组成一块空间。

好中二啊。。。。

我们再来观察一个例子。上述基础上,再加上 v3=(1,2,1)S 变成了什么?

诶!你发现它不变。因为 v3span{v1,v2},所以加上了这个 v 并不能使得它张成出新的东西来,都是旧活,整不出新活。我们换个角度描述,这就是说:v1,v2,v3 线性相关。

结论:对于向量组 v1,v2vn,若 vspan(vi),则加入 v 后,其张成空间不改变,而且,加入完以后,向量组必然线性相关。反之,如果 vspan(vi),那么张成空间必然会变大。证明很容易。

折腾空间:和,交,积

对于向量空间来说,我们还能稍微折腾一下它。这个内容在课本上 [] 没有,但我们知道这东西,有利于促进认知,有时候做题有用。

[注] 其实不然。我以为没有,事实上是还没讲到。书上是有的。

子空间:对于向量空间 V,如果 V1 满足 V1 也对线性运算封闭并且 V1V,那么 V1V 的子空间。 最小的非空子空间是 {0}V 本身是 V 的子空间。

子空间的:对于向量空间 V1,V2V,定义“和”:V1+V2={v|v=v1+v2,v1V1,v2V2}

直和:两个空间的和是直和,当且仅当 V1V2={0} (注意这个0是指零向量),记作 V1V2

子空间的 :对于向量空间 V1,V2V,定义 “交”,就是直接取交集 V1V2

空间的积:对于任意的向量空间 V1,V2,定义“积”:V1×V2={(v1,v2)|v1V1,v2V2}

一些性质:

空间到底 “几维”?

根据刚才的感受,似乎 “n个向量拼出来的空间大概是n维的”,但现在我们发现,“如果有了线性相关的向量,就拼不出n维了”

等等,说到底,一个空间的“维数”,是什么?怎么判断?

对于低维的情况,我们通常采取 “看它是啥” 的办法,是直线,平面,还是空间,来判断它几维。那四维以上,我们没法“看”了,咋办?寄了?

下面我们就来想办法描述空间的 “维度”。此前,我们需要一个工具:基!

基,与空间的维数

接下来,我们搞基!

我的高中数学老师:要做好向量题,需要学会“搞基”和“搞积”。

这对应我们说的“基的观点”和“内积空间”,即使来到线性代数的领域,也很有用。

什么是 “基”?

“基”是对于向量空间而言的。如果一个向量组 vi 是向量空间的基,则 vi 张成 v,且 vi 线性无关,则 vi 是向量空间的基。

根据高中学的平面向量基本定理,我们知道,两个不共线的二维向量是平面的基。它们可以 唯一组合 出平面的所有向量。

那是不是,对于任意向量空间,它的所有向量都可以被基给唯一表示呢?是的!我们来证明。

(注:这就是上面提到但没有证明的 “n维向量基本定理”)

由于 vi 张成 V,因此 vVv 是可以被表示出来的。下证唯一性。

假设我们有个基 v1,v2vn。对于向量 v,假设它有两个表示方式 aibiv=aivi=bivi,且 ai,bi 不全相等。

那么 vv=0=(aibi)vi,也就是说 vi 可以以 aibi 为系数组合出 0,也就是说 vi 线性相关。矛盾!

所以,没有两种表示方式,表示方式是唯一的。

这启发我们:我们可以用“基”作为描述空间的工具!

确实是这样。我们发现,一个向量空间,它里面有无穷无尽的元素。我们不可能去“枚举”里面的每个元素并研究。

但对于有限维空间而言,“基” 一定是有限的,里面包含一个个单独的向量。我们去研究 “基” 的性质,再尝试通过线性运算组合它们,就可以研究出整个空间的性质了。

举个例子:我们用 “基” 的观点来研究上述向量空间的和与基。

假设现在有两个向量空间 U,V,其基为:u1,u2umv1,v2vn

和:要求其和,只需把两个空间的基 ui,vi 全放在一起,张成出来的就是 U+V

积:U×V 的基为:(u1,0),(u2,0)(um,0),(0,v1),(0,v2)(0,vn)

证明:首先它们显然线性无关,并且可以组合出 U×V 中的所有元素,所以是基

直和:UVui,vi 线性无关。

证:“” 显然,如果线性无关,肯定不会有非0交

” 就考虑,不是直和,也就是 v0,vUV,那么 v 同时是 ui,vi 的线性组合,把这两个系数相减,就得到了一组系数用 ui,vi 组合出 0,这说明 ui,vi 线性相关,取逆否命题就证明了 “

现在我们发现,“基的观点” 真是一个很棒的工具

话说,“交” 怎么做?

并不容易直接做。的确有线性基求交的算法,不过我还没看懂,抱歉啊

丢个别人写的博客链接:线性基求交

“扩约基” 大法

这是一个很棒的工具,可以用来证明一些命题。

假设现在我们有向量组 vi,但它可能线性相关,就有一些“冗余向量”。我们可以对它进行 “约简操作”,使得它张成空间不变,并且变得线性无关。

  1. 第一步,保留 v1
  2. 对于 i=2n,第 i 步,尝试保留 vi。如果留着 vi ,导致向量组线性相关,就删去 vi,否则留
  3. 最后,容易发现,留下的向量都线性无关,且张成空间与 v1,v2vn 相同,也是 V

那现在如果 vi 张成 V,运用上述算法,就可以把它约简为 V。事实上这就是我们竞赛里的 “线性基算法”。我们得到的 “基” 一定是 极大线性无关组

“极大”这个词的意思是,“不能通过调整变得更大”

函数的“极大值”,就是 “不能通过左右微调变得更大”,就是说这个值比左右两边的(足够小的)领域里的值都大

这里的“极大”是指,“不能再加一个新的向量使得它还是线性无关组”

另一方面,假如我们有无关的向量组 v1,v2vn,张成一个 V 的子空间。我们也可以再加入一些向量,使得它变成一组 V 的基。这是 “扩张” 操作。

构造存在性:我们取 w1,w2vmV 的基,对 v1,v2vn,w1,w2wm 进行上述约简操作,前面的 v1,v2vn 都被保留,并保留了一些 wi 的子集,多出来的这些 wi 就是我们扩充进去的向量。

综上,我们现在有了“扩张”和“约简”操作。这是我们的 “扩约基大法”。在LADR书中,经常使用扩约基大法。

维度

接下来,我们看,怎样严谨的描述一个向量空间的 “维度”?

我们可以引入坐标系。如果只有一条 x 坐标(即数轴),那这个空间是一维的。有了 xy 坐标,就二维,三维则需要 xyz 坐标。

现在我们有了向量的观点。我们可以把每一条坐标轴“看成”一个向量,比如我们取这个轴上长度为1的单位向量,平面里的每个向量都是坐标轴向量的线性组合。

那我们只需要看,“有几根轴”,或者说,“有几个轴向量”,就知道这个空间几维了。

对于“轴”,我们发现,其实它最重要的性质在于 “线性无关”,所以它们能够组出来所有向量,关于它们的垂直的性质,其实并不重要。比如,平面上两个不垂直的向量,只要不共线,照样能组合出平面上的所有向量。

所以,我们用 “线性无关向量数” 来描述 “维数”:对于一个空间 V,假如它可以被 n 个线性无关的向量张成,则称 V 的维数为 n,记作 dimV=n

为了让这个定义成立,我们需要证明一件事:假如两个向量组都线性无关且都张成 V,则向量组中向量数相同。

先证明一件事:对于空间 V,任意张成组的向量个数 任意基的向量个数

证:假设 v1vn 是张成组,u1um 是基

对于向量组 u1,v1vn,它肯定线性相关。根据“约简”法,可以删去至少一个 vn,使得它的张成空间不变。

再往前加一个 u2,变成 u2,u1,v1vn,也可以再约简掉至少一个 vi

往前加入了所有的 u1,u2um 后,由于每次加完都变得线性相关了,所以每次都是可以约简至少一个 vi 的。

所以肯定有 nm,要不然就会有其中一次没得删了。

然后证明原命题。假如有两组基 v1vnu1um。由于基也是张成组,根据上面的命题得到 nm,交换二者的地位,得到 mn,于是 n=m

这样,我们的定义就是良好的。对于一个 n 维空间,它的基必然有 n 个向量。对于 n 个线性无关的向量,其张成空间是 n 维的。

定义 向量组的:对于向量组而言,它的秩定义为其张成空间的维度,记作 rank(v1vn)rank 常简写为 r

对于课本上讲的秩,我们可能不知道它为啥就突然这样定义了。但这里,我们对它有了直观感受:它就是张成空间的 维度。利用约简法,我们也可以发现,它就是向量组里的 极大线性无关组 的长度。

我们尝试用维度的概念描述上述 “和空间” 与 “积空间” 的维度。

对于 U+V,假如分别取了两个基 ui,vi,放在一起后,进行“约”,剩下几个向量,U+V 就是几维的。

特别的,如果 UV,则 dim(UV)=dimU+dimV,因为此时 ui,vi 全部线性无关。

对于 U×Vdim(U×V)=dimU+dimV,因为取 U×V 的基(按照上面说过的办法),很容易发现它一定是 dimU+dimV 个。

初等变换,高斯消元

初等变换:就是对向量组进行线性运算,包括:

我们经常把两步操作复合起来,做一个倍加操作:把 vi 加上 kvj,记作 vi+kvj

我们注意到,交换 vi,vj 的操作,也可以由初等变换实现。

具体实现:

(vi,vj)vjvi(vi,vjvi)vi+vj(vj,vjvi)vjvi,vj(vj,vi)

因此多数书上给的初等变换是三个:数乘,倍加,交换。但此处我们说明,最本质的其实就是那两个:加法和数乘。

一个重要的观察:对向量组做初等变换,张成空间不变。当然,由此,我们可以有许多推论,比如,过程中,它的秩也是不变的。

做初等变换后,每个向量还是原先向量的线性组合,再组合起来还是线性组合,因此不会多。然后我们很容易构造一个办法使得我们还能构造出原先能构造出来的向量,因此也不少。所以张成空间是不变的,不多也不少。

接下来,我们就可以做这样一件事:

高斯消元

简而言之,高斯消元的基本思想就来自小学学过的解方程组消元的办法,“加减消元法”。不过,针对更加一般化的情况,我们需要一个更加规范的语言来描述,这就是线性代数的语言。

这里我们可以看出线性代数语言的一个很大的作用!它可以 形式化的 去描述一个 “变换”,把 “操作” 也变得形式化了。本来它是一个 “流程”,比较偏实践应用,而我们通过线性代数,就把他变得理论化了。

一个最直观的应用是,当我们把他形式化描述以后,就可以写出代码来自动化的完成消元的过程

它的思想是,通过初等变换,把向量消成一个简化的形式。之后,我们就可以做到:对于向量组 V=(v1,v2vn)

我们的考试题里经常涉及这种具体的计算题,因此这个很有必要。此前,我们需要先注意到一件事:

“注意到”:如果 vi 的首个非 0 位置 pi 是两两不同的,那么 vi 一定线性无关,且我们可以很方便的据此判断一个向量是否在 span(vi) 中。

我们称这样的向量组,有一个 “漂亮的形式”。看了后面的相关内容,我们会知道,这是一个梯形阵的形式

例子:

v1=(1,1,4,5)p1=1

v2=(0,0,1,0)p2=3,因为它第一个非 0 的数,出现在第 3 个位置

v3=(0,0,0,4)p3=4

为了方便描述,下面记 v[i] 表示向量 v 的第 i 个位置的数。

证明线性无关:我们不妨把 pi 从小到大排序。考虑 kivi=0,对于第 p1 个位置来说,只有 v1[p1]0,其它都为 0,因此 kivi[p1]=k1v1[p1]=0,就必须要求 k1=0。同理,在 k1=0 基础上,考虑 p2 位置为 0,就需要 k2=0,由此可以证明所有的 ki 都为 0

这个记号看起来像C++里访问数组的下标。。。如果滥用了记号我很抱歉

如何判断是否在 span 中:也是从小到大排 pi,对于给定的 v,需要先凑出 v 的第 p1 位。如果 v1p11 之间有非 0 的位置,那就必然凑不出来,当场给出判断,“不行”;否则,把 v 减去 v1k1 倍,把 v[p1] 消成 0,这个 k1=v[p1]v1[p1],减完之后继续用 v2vn 凑出剩下的 v。如果此后都没有给出“不行”的判断,且最后剩下来的是 0,就可行,并且系数就是途中得到的 k1,k2kn

例子:向量组如上

对于 v=(2,2,6,22),先得到 k1=2/1=2,把它减去 2v1 得到 (0,0,2,12)

同理得到 k2=2/1=2,减去 2v2 得到 (0,0,0,12)

最后 k3=12/4=3,减去 3v3 得到 (0,0,0,0),成功!因此我们得到 v=2v1+2v2+3v3

对于 v=(2,3,6,22),在减去 2v1 后得到 (0,1,2,12),由于 1p21 之间有一个 v[2]=1,它非 0,一定没法被 v2,v3 凑出来,所以就挂了,给出判断:不行!

那我们发现,长成这样的向量组,性质很棒啊!然后我们就会发现一件更棒的事情:对于任意的向量组都可以通过初等变换变成上述 “漂亮的向量组”。由下列高斯消元算法给出。

高斯消元算法:假设 v1,v2vnRm

下图来自 wikipedia,给出了一个演示高斯消元法的动画。

后面我们讲到方程,讲到矩阵,讲到行列式,我们会不断的发现这东西非常他妈的有用。

线性变换,矩阵

概念

线性变换:一个映射 T:UV,把 U 中的向量 u,映射到 T(u)V,而且是“线性的”,即:

“加性” 和 “齐性” 合在一起,称为 “线性性”。

所有的 UV 的线性变换的集合记为 L(U,V)

这个符号 L 输入起来很费劲,后面用 L(U,V) 表示同样的意思。

对线性变换,可以定义线性运算。

线性变换的线性运算

我们也有“0”:零映射 0L(U,V) 满足 0(u)=0。也就是它把任意向量映射成零向量。

于是,我们很容易发现:L(U,V) 是向量空间!

也就是说,这个不知道在干什么的一个映射,它的集合,居然是一个向量空间!它不仅本身是线性的,还能构成向量空间,那它到底是个啥呢?真是线线又性性啊。

线性变换的复合运算:对于 TL(U,V)SL(V,W),其 “复合运算”,就是先做 T 变换,再做 S 变换。用 ST 表示复合,(ST)(u)=S(T(u)),其中 STL(U,W)

一个是 U,V ,一个是 V,W,“搞起来”,变成了一个 U,W。联想课本上学的 “矩阵乘法”,m×n 的矩阵乘以 n×p 的矩阵,得到 m×p 的矩阵。他们都有一个 “中介”(V 或者 n),并在“搞起来”之后没了。是否有某种相似的感觉?

事实上,可不止是“相似”,这玩意就他妈的是一回事!(原谅我的不严谨,但他俩真的紧密关联)

搞基,引入矩阵

线性变换是针对向量空间而言的。向量空间是一大块空间,这导致我们很难去搞它,也就对线性变换这回事有点迷惑:它到底在干啥?

回想上面学到的内容:当我们不会处理“一块空间”的时候,搞基!

根据这个idea,我们把线性变换作用在基上,再根据线性变换的线性性,很快,我们发现:

假如现在有空间 U,V,基为 u1,u2umv1,v2vnTL(U,V)

那么,对任意 uUT(u) 的取值由 T(u1),T(u2)...T(um) 唯一确定

这是因为 u 可以被唯一写成 ui 的线性组合 u=kiui,因此 T(u)=T(kiui)=T(kiui)=kiT(ui)

T(ui)V 中的向量,它又可以唯一写成 vi 的线性组合,这是一组系数。

所以,我们可以用 m×n 个系数,来描述这个变换。我们把它排成 nm 列,其中第 i 列表示 T(ui)vi 组成的系数。

例如,m=4,n=3 时,系数(这里写出了 ui,vi 辅助理解)

u1u2u3u4v11145v21419v38100

代表的含义就是,T(u1)=1v1+1v2+8v3T(u2)=1v1+4v2+1v3T(u3)=4v1+1v2+0v3T(u4)=5v1+9v2+0v3

我们发现,假如基确定,这个“表示”和线性变换是 一一对应 的。也就是,给定线性变换,这个表示唯一;给定这个表示,确定的线性变换唯一。

这个“表示”,就是我们的 矩阵

定义 线性变换关于某个基的矩阵T,U,V 定义同上,则 T 关于基 ui,vi 的矩阵记为 M(T)M(T)i,j 表示它的第 i 行第 j 列。则 T(uj)=i=1nM(T)i,jvi

假设 dimU=m,dimV=n,则 M(T)n×m 的矩阵。我们用 Rn×m 表示 n×m 的实数矩阵的集合(Cn×m 同理,但我们用的少)

如果我们取不同的基,得到的矩阵是不同的。不过,一般我们默认取的是 标准基下的矩阵

标准基:Rn 的标准基 e1,e2en,满足:

e1=(1,0,00),e2=(0,1,00)en=(0,0,00)

就是说 ek 只有第 k 个位置为 1,其它位置都为 0

矩阵的线性运算

零映射,对应的矩阵是一个 n×m 的全 0 矩阵。由此可见 Rn×m 是一个向量空间。

矩阵的转置A 的转置 AT,满足 (AT)i,j=Aj,i,就是把行列交换得到的矩阵

“转置” 的概念是通过对偶映射引入的。后面我们会从头来引入这个东西。

常见的一些矩阵的种类:

矩阵乘法

我们关注这个问题:两个变换的复合,对应的矩阵是什么?

跟上面一样我们定义 TL(U,V),SL(V,W)U,V,W 的基是 ui,vi,wi,维度是 m,n,p

我们要研究 M(ST) 是啥。同样,我们研究它对基的作用。

我们记 M(S)=ARp×n,M(T)=BRn×m

(ST)(ui)=S(T(ui))=S(B1,iv1+B2,iv2+Bn,ivn)=B1,iS(v1)+B2,iS(v2)+Bn,iS(vn)

我们写成求和记号 =k=1nBk,iS(vk)=k=1nBk,ij=1pAj,kwj=j=1pwj×(k=1nBk,iAj,k)

显然它是 W 的基 wj 的线性组合,其中 wj 的系数就是 k=1nAj,kBk,i

根据矩阵表达的定义,我们发现,(ST)(ui)wj 的系数,就是 M(ST)j,i

于是有:M(ST)j,i=k=1nAj,kBk,i

这便是一般的书上给出的矩阵乘法的定义式。也就是说,我们 用矩阵乘法,描述的是两个线性变换的复合

定义 矩阵乘法:对于 ARm×n,BRn×pA×B 定义为:

(A×B)i,j=k=1nAi,kBk,j

其中 A×BRm×p

解释:(A×B)ij 列,是 A 的第 i 行和 B 的第 j 列对应位置乘积的和 (高中学的“向量点乘”)。因此,这要求 A 的列数 = B 的行数。

矩阵与向量的乘法:我们把上面提到的 “向量” 都看成 n×1 的矩阵(列向量) v,那么 ARm×n 就可以左乘 v,得到 Av

用矩阵乘法做线性变换:对于一个线性变换 TL(U,V),取它在标准基下的矩阵 A,则 T(u)=Au。这是因为,u 中的每个位置的值,就代表了它被标准基组合出来的系数。比如 u=(1,1,4,5),则 u=1e1+1e2+4e3+5e4。而如果不是标准基,就需要先求出系数,然后再用矩阵乘,再用得到的系数去组合 vi,得到 T(u) 的结果。

矩阵乘法的性质

处理矩阵:矩阵分块

就是说,我们可以把矩阵分成若干个块,每一块里面是个小矩阵。然后,求两个矩阵的积,可以把每一块小矩阵看成“元素”,对它们进行乘法。

比如 A=(A1A2A3A4)B=(B1B2B3B4),则 AB=(A1B1+A2B3A1B2+A2B4A3B1+A4B3A3B2+A4B4)

其中 A1,A2,A3,A4,B1,B2,B3,B4 都是小块的矩阵。

两个矩阵的分块能乘起来的充要条件是,A 在行上的划分 = B 在列上的划分。

比如这里,ARm×n,BRn×p,假设 A 把行划分为了 n=n1+n2,那么 B 必须也把列(长度为 n)划分成 n1+n2 才行。

这个应用有很多,有时候我们可以用合理的分块使我们加速矩阵的乘法。也可以利用分块矩阵来帮助我们更清楚的描述一个“大矩阵”里的各个“小部分”,用于一些小证明。

一个常见的分块是行(列)分块:就是把每一行(列)看成一个块,把矩阵看成一列行向量 ri,或者一行列向量 ci

根据行列分块,我们发现:A×B,相当于用 A 左乘 B 的每一列(对 B 列分块)得到新矩阵的列,或者用 B 右乘 A 的每一行(对 A 行分块)得到新矩阵的行。这个观点非常有用!

处理矩阵:行列变换与消元法

消出来的形状

上面讲了对向量组进行消元的方法。由于矩阵可以看成行列向量组,我们也可以对它进行消元。

对行(列)向量做初等变换,叫做 初等行(列)变换

我们可以用上述消元方法,只做行变换,把矩阵的行向量组消成 “漂亮的形式”:梯形阵

梯形阵满足,每一行的首个非0元素出现的位置严格递增

我们可以进一步把它变成 行简化梯形阵,它满足:在上述基础上,

我们只需在上述变换的基础上,给每一行除一个数,就把那个非零元素变成1了,然后再用这一行去消上面的行,把非0的位置消掉。此时我们仍然 只做了行变换

如果允许做列变换,我们更是能把它消成一个更为简单的形状:标准型,它可以用这个分块矩阵描述:(IrOOO)

要得到它,可以在上述行简化梯形阵(必然剩下前 r 行非0)的基础上

总结:

任意矩阵A行变换行简化梯形阵列变换标准型(IrOOO)

用方阵描述行列变换

对于oi选手,学会矩阵后的第一件事,就是尝试用矩阵来描述一个变换(然后学习矩阵快速幂并求出斐波那契的第 n 项)

现在我们也来干这件事。假设 v=(a,b,c) 是列向量。把 v 变成 Pv=(a,2b,c) 的矩阵 P 是什么?如果 Pv=(a+c,b,c),那 P 又是什么?

显然 P3×3 的方阵。经过一些手动模拟,或者待定系数吧,总之我们可以得到:

第一个 P=(100020001),第二个 P=(101010001)

我们相当于在对 a,b,c 三个数进行初等变换。事实上,就算 a,b,c 是三个向量也无妨,我们可以把矩阵列分块,照样把它看成数来算。

从上面的例子我们可以大概感受到怎样用矩阵描述初等变换。

我们可以用对角阵来描述数乘变换:设 P=diag(a1,a2an),如果 ai=k,且 ji,aj=1,那么 P×A 就把 A 的第 i 行变为了 k 倍,别的不变

我们能否用矩阵来描述加法变换呢?注意到:P=In+ei,j(ij),也就是说 P 的对角线和 i,j 位置为 1,其它为 0,这个 P×A 的效果就是把 A 的第 i 行加上第 j 行。同理,如果 P=In+kei,j(ij),那么就是把第 i 行加上第 j 行的 k 倍。

比如上面的 P=I3+e1,3,它的效果就是把第 1 行加上第 3 行,就得到了 (a+c,b,c)

然后我们大脑一转,诶!发现这么一回事:

初等行变换对应的矩阵,就是对 In 做相应变换后得到的矩阵

事实上这是讲道理的。假设 P 是初等行变换矩阵,那么 PA 就表示对 A 做相应变换,由矩阵乘法的结合律可知 PA=(PIn)A

PIn 就是对 In 做相应变换得到的矩阵,它就是行变换矩阵 P 本身。

根据这个道理,我们可以很容易的写出交换 i,j 行对应的矩阵 P:它就是在 In 的基础上,令 Pi,i=Pj,j=0,且 Pi,j=Pj,i=1

关于如何描述列变换:我们用右乘矩阵 Q 来描述,同理,对 In 做相应的列变换得到的就是对应的 Q

后面我们会讲到方阵的可逆性,这里先提一嘴。

初等行列变换矩阵都是可逆的。可逆的矩阵乘起来也是可逆的。对矩阵 A,经过行列变换,变成 A,可以描述为 A=PAQ,其中 P,Q 是若干个行/列变换矩阵的乘积。所以 P,Q 可逆,A=P1AQ1,其中 P1,Q1 也是可逆的方阵

AA 的标准型,于是就有了一种 矩阵分解方法

  • 对于任意的矩阵 A,它都可以写成 A=P(ErOOO)Q,其中 P,Q 是可逆的。
  • 对于可逆的矩阵 P,它都可以写成 T1T2Tk 的形式,其中 Ti 是初等行(列)变换矩阵。这是因为我们一定可以把 P 通过消元变成 In,再把所有的操作反着做,就得到了从 In 通过乘以初等行(列)变换矩阵变成 P 的一个方案。

零空间,值域,秩,方程

零空间与值域

对于线性变换 T,定义:

T 写成关于标准基的矩阵 A,我们同样定义 A 的零空间是 Av=0v 集合,值域是 Av 的集合。我们来研究,这是个什么玩意。

先看值域。我们对 A 列分块为 c1,c2cmAv=(c1,c2cm)v=v1c1+v2c2+vmcm,是 ci 的线性组合,系数为 vi,而 v 是一个任意的向量,所以 Av 构成的集合就是 ci 的所有线性组合,也就是说,range A=span(ci)

然后我们看零空间。把 A 行分块为 r1,r2rnAv=0,就是在说 i,riv=0

在实数域内,这意味着向量 riv 是“垂直的”。

但严格来说,“垂直” 依赖于内积的定义,这个后面再说,这里讲这个是越级的。

但我们毕竟高中学过向量的点乘,姑且用这个来帮助我们理解。

那这样看来,v 垂直于所有的 ri,也就是说 v 垂直于空间 span(ri)v 构成的集合 null A 就是一块垂直于 span(ri) 的空间

比如说,三维空间里,如果 span(ri) 是一条过原点直线,那么 null A 就是过原点垂直该直线的平面

注意:这个理解在复数域中不成立,因为复数域里的内积定义为 (u,v)=uTv,这玩意为 0 才说明垂直。

零空间与值域,存在一个维度的关系。假设 TL(V,W),则:

dimrange T+dimnull T=dimV

这是一个十分漂亮且十分重要的公式!

证明:

null TV 的子空间,取它的基 v1,v2vr,设 dimV=n

把它扩充为 V 的基,必然补上了 nr 个向量,假设是 u1,u2unr

可以证明:T(ui)range T 的一组基。这样就说明了 dimrange T=nr

首先证明 T(ui) 线性无关。

反证:假设相关,就存在 ki 非全0, kiT(ui)=0。这就是说 T(kiui)=0,则 kiuinull T=span(vi)ui,vi 是无关的,因此这不可能成立。矛盾!

因此,T(ui) 是线性无关的。

然后证明 T(ui) 张成 range T。我们用“扩约基”大法

显然,由于 v1vr,u1unrV 的基,因此 T(vi),T(ui) 可以张成 range T。然后我们对它“约”,显然由于 T(vi) 都是 0,就全被约掉了,T(ui)0 且线性无关,全都保留,因此得到的就是 T(ui),它是一组基。成立!

于是我们证明 T(ui)range T 的基。证毕!

矩阵的秩

矩阵也可以看成向量组。对于 n×m 矩阵,它是 m 个列向量,也是 n 个行向量。

由此,定义 行秩列秩:就是把矩阵看成行向量组和列向量组,得到的秩。

接下来,有一个美妙的结论:行秩=列秩

证明:有两个证明。我想了一个,用矩阵的行列变换,结合可逆算子(可逆方阵)性质的证明。LADR书上则是先介绍了对偶变换(转置)然后用那边的结论证明的。

前者在上文中已经有涉及了,这里也是简单提一嘴。就是我们把矩阵 A 写成 PAQ,其中 A 是标准型

对于一个标准型,显然它的行秩 = 列秩 =r

而矩阵乘以可逆的方阵后行、列秩不变,这是因为可逆的矩阵一定是初等行(列)变换矩阵的积,做初等行(列)变换时,行(列)秩是不变的。

做初等行变换时,列秩也不变,因为做这个变换时,相当于对每一列都做了同样的可逆变换,这不影响列向量组的张成空间的维度,所以列秩不变。

所以 A=PAQ 的行秩、列秩都等于 A 的行秩、列秩,也就是 r

关于可逆矩阵的性质,后面会讲到

因此,我们直接定义矩阵的秩为行秩就行,反正都一样。矩阵的秩也写作 r(A)

我们发现,dimrange A=dimspan(ci)=r(A)

有一些关于秩的性质,在这里顺带提一下。

性质:n 个向量线性无关,当且仅当:把向量拼成矩阵 Vr(V)=n。考虑定义即可。

性质:矩阵 ARn×m,则 r(A)min(n,m)。考虑行秩和列秩,nm,显然

性质:nm 维向量,m<n,必然线性相关。因为秩 m<n,必然不是无关的。

性质:r(A)r(AB)r(A)+pARm×n,BRm×p

证:(AB)A 右边拼了个 B,考虑这玩意的列秩

显然,在原先基础上加了一堆向量,span 不会变小,所以肯定有 r(A)r(AB)

由于我们加上了 B 的列,共 p 个,加一个向量维度最多增加 1,也就是说最多增加 p,所以 r(AB)r(A)+p

性质:r(AB)min(r(A),r(B)),其中 ARm×n,BRn×p

证:把 A 列分块,AB=(c1,c2cn)B,得到的每一列都是 ci 的线性组合(系数为 B 的列)。因此 AB 的列都 span(ci),于是 span(AB)span(ci)r(AB)r(A)。同理,AB 的每一行都是 B 的行的线性组合,所以 r(AB)r(B)

性质:r(AB)r(A)+r(B)nA,B 同上

性质:r(A+B)r(A)+r(B)A,B 是一样大的矩阵

这俩的证明:会在讲行列变换的时候填坑,并介绍一种用基于分块矩阵的证明思路

性质:k0,则 r(A)+r(A+kI)nARn×n

证:上个结论的推论,r(A)+r(A+kI)=r(A)+r(AkI)r(AAkI)=r(kI)=n

方程

有了上述工具,就可以用线性代数的工具去理解线性方程组了,非常的爽

对于一个线性方程组,我们就是有 n 个变量 x1,x2xn,然后有 m 条方程,第 i 条方程形如:j=1nai,jxj=bi

就是说,

{a1,1x1+a1,2x2+a1,nxn=b1(1)a2,1x1+a2,2x2+a2,nxn=b2(2)am,1x1+am,2x2+am,nxn=bm(m)

我们设矩阵 AAi,j=ai,j,列向量 x=(x1,x2xn),b=(b1,b2bm),则我们可以把方程写成:

Ax=b

它变成了一个极其简洁而美丽的形式!你看,我们有了线性代数的工具,就可以简洁美观的描述问题。

这描述的事情,相当于是对 x 做了一个线性变换(左乘 A)后得到 b,要求解 x

分两种情况:无解,有解;有解的情况,又分为:唯一解,无穷多解

问:哪些 b 有解?答:range A

很显然,这是因为 range A={Ax},就代表了所有可能的 Ax 的集合。要有解,必须在 A 的值域里才行。

range A 就是 span(ci)ciA 的列。因此,求解 x 的问题变成了:求 ci 的线性组合系数,使得组合出来 b

上面我们已经能用高斯消元法判断一个向量 v 是否属于一个向量组 vi 的张成空间了。于是我们能判断是否有解了!

还没怎么动脑子,就已经能做这么多了。手上工具多,就是自信!当你会的知识越多,就越不需要技巧,剩下的只有一力降十会!

那解到底是什么呢?我们也可以用高斯消元法求解这个问题,就类似我们在 向量的高斯消元 一节中做的一样。为了方便,我们把 b 这一列并到 A 的右边来,写出增广矩阵:A~=(Ab),然后把它消成一个行简化梯形阵。显然,做行变换的时候,方程的解是不变的。

观察最后的形式:如果出现了一行,前面都是 0 而最后一位为 1,说明它是一个形如 0=1 的方程,显然无解!这也就说明,我们不需要一开始先消元判断一下是否无解,直接上来就消,再看看有没有解也不迟。

大力消元,爽!看到矩阵不会搞,就嘎嘎消元,说不定能折腾点啥出来。

否则,一定是有解的。假设第 i 行首个为 1 的位置是第 pi 列。由行简化梯形阵的性质,pi 列只有第 i 行为 1,别的都为 0。因此 xpi 只在第 i 行出现。那就有了一个显然的解:令 xpi=bi,其它的 x 全都为 0,显然是一组解。于是我们构造了一组特解!

但是,解不一定是唯一的,很多时候,会有多解。例如 x1+x2=1,它就有无穷多的解。

对于这个方程,我们怎样去处理它呢?首先,观察到特解 x1=1,x2=0。然后,把 x1+k,把 x2k 后,依然是解。因此,通解的形式可以写成 (1+k,0k)

用向量的语言表达它:通解 (x1,x2)=(1,0)+k(1,1)。不难发现,这确实是通解。

(1,1) 满足 1+(1)=0。这启发我们考察 Ax=0 的解....诶!脑子一动,我们马上想到一件事:

如果 x1,x2 都是 Ax=b 的解,那么 x1x2Ax=0 的解。也就是说,假如我们有了 Ax=b 的特解 x0,和一个 Ax=0 的解 x,所有的 Ax=b 的解 x 一定可以写成 x0+x 的形式。

但这个 x 也有无穷多个呀,我们怎么描述它呢?回忆我们之前学过的内容....

诶我草!Ax=0 的解集 x,不就是 null A 吗!

此时我们突然就感受到之前学的玩意有啥用了。看!这是不是就很爽了!

接下来,还是老样子,搞基。我们写出 null A 的基,假设是 v1,v2vp。那么 Ax=b 的通解,就可以写成:

x=x0+k1v1+k2v2+kpvp

后面表达的是一个线性组合,它可以得到 null A 中的所有向量,所以这个表达式写出来的是 解,所有的解,都能写成这个形式。而且由于 v1vp 是基,这个形式还是唯一的。(假设 x0 确定)

总结:如何根据上述工具,解一个线性方程组?

Ax=b 有解 brangeA

高斯消元法,求出 Ax=b 特解 x0,或者断言无解;再求出 null A 的基 v1vp,则通解可以写成:

x=x0+i=1pkivi

null A 的基,又被叫做 基础解系。不过我们还差一小点:怎样求基础解系?

假设现在我们把 Ax=0 的矩阵 A 消成了一个行简化梯形阵,假设上面剩下 r 行非 0 的(发现 r 就是 A 的秩)。同样记第 i 行第一个出现 1 的位置为 pi,那么 xpi 只在第 i 个方程里出现。我们重点关注这些 xpi ,因为它们性质好,只出现一次,称其为 “好变量”,其它变量叫做 “其它变量”,用 x... 来表示它们,用 ...x... 来表示它们的某个线性组合。

那么第 i 个方程,就是 xpi+...x...=0 的形式。移项,得到 xpi=...x...

假设我们确定了 x... 这些变量,就可以很容易的唯一确定 xpi,使得满足方程 Ax=0。而且这两者是 一一对应 的:一个 Ax=0 的解,和一组 x... 的取值,一一对应。

非零的 i 一共有 r 个,所以 xpir 个,x... 就有 nr 个。我们可以这样构造一组基础解系:对于 vi(1inr),令第 ix...=1,其它的 x...=0,并相应的算出“好变量”xpi 的值,得到一个 Ax=0 的解,令这个解为 vi

显然,vi 都是 Ax=0 的解,且 vi 线性组合出来以后,得到的是一个在 x... 处任意取值、在 xpi 处保持 xpi+...x...=0 关系的 x,显然,它也是解。而且 vi 是线性无关的。因此,构造出来的 vi 是一组基础解系。

总结:构造基础解系的算法

首先,把 A 消成行简化梯形阵,假设前面有 r 行非 0,第 i 行的首个 1 出现在 pi 位置

S={pi|i=1,2r},而 TS 的补集,记 Ti 表示 T 中的第 i 个元素,共 nr 个。所有的 xTi 构成了上述 x...

构造基础解系 vixTi=1xTj=0(ji)xpix... 相应确定出来,则 vi=(x1,x2xn)

这样求得的 vi 就是一组基础解系

举例:

假设消出来变成:A=(101040150100014)

S={1,2,4},T={3,5},“好变量”是 x1,x2,x4,“其它变量”是x3,x5

对于 v1,令 x3=1,x5=0,推算得 x1=1,x2=5,x4=0,得到 v1=(1,5,1,0,0)

对于 v2,令 x3=0,x5=1,推算得x1=4,x2=1,x4=4,得到 v2=(4,1,0,4,1)

容易发现,v1,v2 就是 A 的基础解系

算子,方阵

算子:一个线性映射 L(V,V),称为 V 上的算子。V 上的算子的集合简写为 L(V)

扯犊子:什么是“算子”?

“算子”这个东西,描述一个 SS 的映射,映射的两边都是同样的集合。

例如,一个线性映射,把 vRn 映射到 Rn,它就是一个算子

例如,求导算子,对函数求导,得到的还是函数,它把函数映射到函数,也是一个算子

例如,对数列,有前缀和算子和差分算子,它把数列映射到数列,也是一个算子

算子对应的矩阵,是一个 方阵。前面已经提到过了一些种类的方阵。

方阵的可逆性

一个不方的阵,它一定不可能可逆。因为 “可逆” 意味着两个空间存在 “一一对应” 的映射,而不同维度的两个空间肯定不可能一一对应。

这里涉及到 “同构” 的概念:如果两个向量空间 U,V 存在可逆的变换 TL(U,V),就说明 U,V 同构

同构的空间,维度一定是相同的

一个方的阵,也不一定就可逆,例如零矩阵,它显然不可逆。那我们思考:什么样的方阵是“可逆”的?

可逆,就是说,给定 u,我们可以计算Au=v,但如果给定 v,把它变回 u,就是逆变换做的事情。我们把矩阵的逆记作 A1。那么这个 u 应该是唯一的,而且 u=A1v

我们发现这是上面说的解方程问题。根据上面的通解表达式,方程有唯一解,当且仅当基础解系里没有向量,也就是 null A={0}。也就是说 Ax=0 的唯一解就是 x=0

根据 dimrange A+dimnull A=n,这等价于 dimrange A=n,也就是 r(A)=n

总结:方阵可逆的等价描述:

还没提到行列式,我们就给出了“可逆”的这么多种等价表达,牛逼吧!

顺带一提,可以再加一条等价表达,就是行列式非 0

可逆矩阵的性质:

到这里我们差不多就能严格的证明上面说的 “行秩=列秩” 这个命题了(指第一种证明)

方阵的行列式

定义 行列式:对于方阵 ARn×n,其元素为 ai,j,行列式记为detA 或者 |A|,它有如下等价的描述:

我们有办法证明它们三个是两两等价的。不过,有点费劲,我就不证了。由于它们等价,接下来,我们就知道怎样求行列式,并可以把公理化定义里的“性质”作为行列式的性质来看。

接下来我们尝试想想,这玩意到底哪来的?

LADR 书上是在最后才给了行列式的定义,并且是用特征值的积来刻画行列式。

课本上是用了一些别的方法引入。假如你有过一些解方程通解的经历,比如,我初中的时候求过方程 {ax+by=cdx+ey=f 的通解形式。我发现,如果 (a,b)(d,e) 成比例且 c,f 间的比例和那个比例不同,就说明无解,否则解里面会带有一个 ...aebd 的形式。这个 aebd 似乎是个固定出现的东西。然后你发现它就是行列式,并自己发现了 crammer 法则。

然后,假如你有这个经历,就是,研究了一下向量 (a,b) 和向量 (c,d) 形成的平行四边形面积,发现它就是 |adbc|,诶!这也是个行列式。从此引出行列式的几何意义,它表示这堆向量形成的高维几何体的“体积”。同时,它也可以刻画一件事:对一个几何图形施加线性变换,其“体积”变化多少倍?就是行列式倍。而行列式的符号,与空间的方向有关(我也不懂咋回事)。

我们进一步研究研究行列式的性质。

观察:假如有一行或一列为 0,则行列式为 0。直接对这一行(列)展开就行,显然为 0

观察:交换相邻两行(列),行列式变为相反数。这是因为交换排列里相邻两个数,逆序数变化 ±1

观察:交换任意两行(列),行列式变为相反数。这是因为你可以通过奇数次相邻交换把任意两个 i,j 交换。

证明:假设 i,j 之间有 m 个数,写作 ij

先把 j 经过连续的相邻交换,换到左边来,共换了 m 次,变为 i j

再把 i 经过连续的相邻交换,换到右边,不仅越过了 中的 m 个数,还越过了 j,交换 m+1 次,变为 ji,完成交换

一共换了 m+(m+1)=2m+1 次,必然是奇数

观察:假如有两行(列)相同,则行列式为 0。假设 i,j 相同,交换 i,j,则 |A| 不变,另一方面 |A| 又变为 |A|,故 |A|=|A|,|A|=0

观察:假如有一行是另一行的 k 倍,则行列式为 0。因为它等于 k×(两行相同的行列式)=k×0=0

猜测:假如有若干行线性相关,则行列式为 0。这个猜的很好,而且猜的对,不过我们过会再证。

我们发现,行列式关于行列线性的性质,似乎跟行列变换有很大关联。接下来就考虑,做行列变换对行列式的影响。

于是,我们就可以通过行列变换,把矩阵消成一个标准型。然后我们就发现,如果矩阵不满秩,行列式就为0,否则行列式非0

接下来的命题告诉我们:不需要非得消到标准型,消的“差不多”就能求行列式了。

命题:一个 上三角矩阵,行列式为对角线之积。

证:显然可以发现,对角矩阵的行列式是对角线的积。

对于上三角,按第一列展开,必须取 a1,1 ,因为别的都为 0。删掉第1行第1列,剩下右下角的矩阵,再对第一列展开,必须取 a2,2,因为别的都为 0。于是我们可以归纳证明每次展开都必须取 ai,i,因此它的行列式就是对角线积。

所以我们消成上三角以后,直接一乘就得到行列式了。当然,要把途中的初等行变换乘上去的因子也考虑进去(别忘了!)。因此我们可以用高斯消元法,通过初等行变换,求矩阵的行列式。

看,高斯消元法又有应用了,牛逼吧!

有了行列变换的工具,我们就可以填上面的坑:(1)可逆,等价于行列式非0(2)如果有若干行线性相关,则行列式为0

这两件事其实同一件事!(1)行列式非0 可逆 r(A)=n 线性无关 (2),所以它俩是等价的。下面证明(2)

假设有若干行线性相关,设行为 ri,则存在一组系数 kikiri=0,且某个 ki0。不妨设 k10

先把第一行变 k1 倍。然后,对于 i=2n,做 r1+kiri。做完上述变换后,r1=kiri=0。行列式变为 0。故原行列式为 0

所以我们又多了一条可逆性的等价描述:可逆等价于行列式非0

关于考试中求行列式的常见技巧:

方阵:幂,特征空间,对角化

相比于“不方”的阵,“方阵”的一大特点就是,它可以自己乘自己。n×n 的矩阵自己乘自己后,还是 n×n 的矩阵。甚至还可以再乘,再乘,再乘....从而求“幂”,这是“不方阵”做不到的。

那么,我们怎样去研究一个方阵的“幂”的性质呢?

矩阵的幂,特征向量

我们可以根据一个高中数学的数列递推的例子来看这件事。

数列 an 满足:a1=1an+1=2an+3,求 an 的通项?

an+1=2an+3 很难去研究,但如果是 bn+1=2bn 就很容易研究,因为这是一个等比数列。

我们尝试把它变形成这样的形式:an+1+3=2an+6=2(an+3),那么令 bn=an+3,就有 bn+1=2bn

因此,an+3=2n1(a1+3)

最后整理得:an=2n+13

我们干了一件事:通过变形,使得原来复杂的变换,变为一个简单的翻倍。

对于矩阵,我们是否也可以干类似的事了?还真可以!

例:对于 A=(1118610),求 An 的通项?

通过“大眼一瞪”,发现:(也可以通过待定系数+解方程发现)

A(21)=(42),翻 2

A(32)=(32),翻 1

v1=(2,1),v2=(3,2)R2 的基,则 Av1=2v1,Av2=(1)v2

对于任意的 v,要研究 Anv,只需要把 v 写成 k1v1+k2v2,则

Anv=k1Anv1+k2Anv2=k1×2nv1+k2×(1)nv2

从而就可以很容易写出 Anv 的通项了。代入 v=(11,6)v=(18,10)A 的列,就可以求出 A 的幂的每一列了,进而求出 An 的通项了

事实上,“研究矩阵的幂” 比 “研究数列通项” 更强,因为数列递推也可以写成矩阵的形式。

例如上述的 an,记向量 vi=(ai1),则 v1=(11)vn+1=(2an+31)=(2301)vn

于是求 an 的通项,其实就是求 A=(2301) 的幂的通项。

对于斐波那契,f1=f2=1,fn=fn1+fn2,也可以写出:(fn+1fn)=(1110)n(10)

从上面的经验中,我们发现:我们可以研究这样的向量 v 使得 Av=λv,如果有 n 个线性无关的这样的向量 v1,v2vn,就把它们作为基,组合出空间里的所有向量 v,从而可以方便的写出 Anv

我们把满足条件的 v 叫做 特征向量,对应的 λ 叫做 特征值

容易发现,一个特征向量 v 翻若干倍以后,仍然满足 Av=λv,并且 v=0 是一个平凡解。

因此,我们约定,不同的倍数里面,任取其一,但是 特征向量不能为0。不过特征值是可以为 0 的。

特征值与特征向量的性质

我们改写上述 Av=λv 的表达形式,发现 λv 其实就是 λIv(因为 Iv=v)。从而可以移项,变成:(λIA)v=0

这是一个齐次方程的形式,满足条件的 v 集合,就是 null(λIA) 。这个 v 存在的充要条件是 λIA 可逆,也就是 |λIA|=0。解出满足条件的 λ 后,怎样搞特征向量呢?解线性方程即可。

那我们保留哪些呢?注意到这样的解可能是无数个,但我们注意到,我们只要取任意一组基,就可以组合出其它的所有向量了,它们依然是 Av=λv 的解。null(λIA) 的基,就是 λIA 的基础解系。

从而我们得到了,解特征值与特征向量的算法:

行列式 |λIA| 叫做 特征多项式,方程 |λIA|=0 是关于 λ特征方程,它是 n 次的。

对于 λnull(λIA)λ特征空间,记为 E(λ,A)。特征空间的每个向量 v 都满足 Av=λv

根据代数基本定理,n 次方程一定有 n 个根(这个是算重复的,并且可以是复数,下略)。

性质:A 的特征值的积 λ1λ2λn=|A|

证:对特征方程使用韦达定理,常数项 =(1)nλi=|A|=(1)n|A|,从而得证

定义 方阵的tr(A)=i=1nAi,i 为对角线元素的和

性质:A 的特征值的和 λ1+λ2+λn=tr(A)

证:同样用韦达定理,n1 次项 =λi

考虑 |λIA|,要出来 n1λ,展开行列式必然是 n1 个对角线元素,而剩下的那一个必然也是对角线。

因此就考虑 (λA1,1)(λA2,2)(λAn,n)n1 次项即可,发现它就是 Ai,i

因此 λi=Ai,i

性质:A 一定有 n 个特征值,根据代数基本定理。(ARn×n,下同)

性质:A 最多有 n 个无关的特征向量。(因为不存在 n+1 个无关的 n 维向量)

性质:λ 对应的无关特征向量数为 nr(λIA)。因为它是 dimE(λ,A)=dimrange(λIA)=nr(λIA)

性质:特征空间之间的和为直和。

证明:即证明,任意两个特征空间之间的和为直和,也就是 E(λ1,A)E(λ2,A)={0},λ1λ2

反证:如果有 v0,vE(λ1,A)E(λ2,A),则 Av=λ1v=λ2v

由于 λ1λ2,v0,它必然不成立。矛盾!证毕。

若干向量空间是直和,当且仅当这些空间的基放在一起后依然线性无关。因此它的推论是:

每个特征空间里都任取一些无关的向量,放在一起,它们是线性无关的

推论:inr(λiIA)n

综合上述几条性质:最多 n 个无关特征向量,而因为 E(λ,A) 是直和,所以无关的特征向量数为 idimE(λi,A)n

从而得到该推论

定义:多项式 p 作用于方阵 A,就是计算 Aipipi 表示 p 中的 i 次项系数

性质:方阵的多项式乘法满足交换律,即对于多项式 p,q,满足 p(A)q(A)=q(A)p(A)

这是因为 A 的幂满足交换律 AmAn=AnAm=Am+n,可以用结合律证明。

性质:假设 A 的特征值为 λi,对于多项式 pp(A) 的特征值就是 p(λi)

这是因为 p(A)v=piAiv=(piλi)v=p(λi)v,表明 p(λi)p(A) 的特征值

这些就已经 n 个了,而 p(A) 的特征值正好为 n 个,因此就这些了,没别的

如果 A 是可逆的,那么 A1 的特征值就是 λi1,这使得 p 中甚至可以包含 1 次项。

例如,AR3×3 的特征值为 1,2,3,则 A1+2I+A+A2 的特征值为 λ1=1+2+1+1=5,λ2=12+2+2+4=172,λ3=13+2+3+9=433

相似矩阵,对角化

一个算子,是否能关于某个基,有对角矩阵?

如果我在给出矩阵的定义的当场就问你这个问题,想必你会觉得:“啊?这咋做?”

但现在,你有了特征空间这个工具。聪明的你发现:如果有 n 个无关的特征向量 vi,取这个 vi 作为基,Avi=λivi,由定义,线性变换关于基 vi 的矩阵就是:diag(λ1,λ2λn) 为对角矩阵!

例如,上面提到的 A=(1118610),它就可以关于 v1=(2,1),v2=(3,2) 有对角矩阵: (21)

或许,在给出矩阵的定义的时候,你可能会疑惑:为什么要用这么别扭的方式定义矩阵?这和书上学的确实也不一样,书上讲的矩阵可以说是 “以标准基为基的矩阵”,没讲到可以取别的基。现在发现了,“标准基”确实方便,但“特征向量基”的性质也非常的棒,所以我们也可以取这个基。

因此,我们现在有必要研究一个,之前一直没研究的问题:怎样对矩阵进行“换基”?同一个线性变换在不同基下的矩阵,表现如何?由于我们这里研究的是方阵,我们只需要研究算子就好了。而且,我们只需要研究 “怎样换到标准基”,就可以以标准基为“中介”,换到任意基。

假设 TL(V) 的矩阵为 ARn×n。如果取的是标准基,那么 T(v)=Av,vV。(假设是列向量,下同)

如果取的是任意基 v1,v2vn,如何做?根据定义写出 T(vi)=j=1nAj,ivj,我们把这些结果拼成矩阵。设 V=(v1 v2  vn) 为列向量 vi 拼成的矩阵,T(V) 为列向量 T(vi) 拼成的矩阵。注意到 Aj,ivjV 乘以 A 的第 i 列,它拼起来就是 V×A。所以 T(V)=V×A。假设 T 在标准基下的矩阵为 A0,那么 T(V)=A0V=VA,得到:

A0=VAV1

由于 V 的列线性无关,V 一定可逆。反过来也有 A=V1A0V。这样我们就得到了如何“换基”:假设基是 V,对应的矩阵是 A,标准基下的矩阵就是 A0=VAV1,同理,知道标准基和给定的基 V,也可以把标准基矩阵 A0 换成 V 下的矩阵。

对于任意两个基 V1,V2,要把 V1 下的矩阵 A1 换算成 V2 下的矩阵 A2,则 A2=V2(V1AV11)V21=(V1V2)1A(V1V2)。发现它一定可以写成 A2=P1AP 的形式,P 是某个可逆矩阵。由此:

定义 相似矩阵:两个方阵 A,B 相似,当且仅当 A,B 可以写成同一个算子在不同基下的矩阵。等价表述为:存在可逆矩阵 PB=P1AP,记作 AB。“相似”是一个等价关系,满足自反性、对称性、传递性。

相似的性质:

性质:AB,则对任意多项式 pp(A)p(B)

证:发现 A=P1BP,则 An=(P1BP)n=P1BnP,因为中间的 (PP1) 全都抵消了。

所以我们有 p(A)=P1p(B)P,从而 p(A)p(B)

事实上,如果把相似矩阵,看成是 “同一个算子在不同基下的矩阵”,那么 AnBn 就是很直观的结论了。因为我们在不同的基下求幂,得到的线性变换应该还是同一个 Tn,其中 Tn(v)=vn 次变换 T

性质:AB,则 A,B 有完全相同的特征值。

这是因为 |λIB|=|P1(λI)PB|=|P1(λIA)P|=|λIA|。其特征方程相同,于是特征值相同。

直观理解:特征值是线性变换的特征,和它用哪个基来描述无关

推论:相似矩阵的行列式、迹相同

从而我们可以定义:

定义 可对角化A 可对角化,当且仅当 A 相似于一个对角矩阵 D

定义 对角化:对于方阵 A,将其“对角化”就是找到可逆矩阵 P,使得 D=P1AP 为对角矩阵。

根据上面的推论,发现,如果 An 个无关的特征向量,取 P 的列为 A 的特征向量,则 D=P1AP=diag(λ1,λ2λn) 满足条件。所以:

方阵可以对角化,当且仅当它存在 n 个无关的特征向量。并且对角化的方法就是:求出所有的特征向量 vi,拼成矩阵 P,则 P1AP 为对角矩阵,对角线元素为 λi

如果可对角化,求矩阵的幂就变得容易了。因为 A=PDP1,An=PDnP1=P×diag(λ1n,λ2n,λnn)×P1。做两次矩阵乘法即可。

接下来,找一些可对角化的条件。

性质:如果 n 个特征值互不相同,则可对角化。

证明:一个特征值至少对应一个特征向量,不同的特征值对应的线性无关,因此它一定有 n 个无关的特征向量。

性质:如果 nr(λIA)=n,则可对角化。

显然,因为左边是 “无关的特征向量数”。所以这是 充要条件

性质:对于 c 重特征值 λnr(λIA)c

证明:我还没彻底理解明白底层原理

由此得到推论:可对角化的充要条件是 λ,nr(λIA)=c

jordan 标准型

可对角化的矩阵,拥有非常好的性质。不仅方便求幂,还可以分解为 P1DP 的形式,使得证明便捷了许多。

那,对于不可对角化的矩阵,我们就拿它没办法了吗?

不,我们还有:jordan 标准型!它也是个性质很棒的矩阵,并且对于任意的不可对角化的矩阵,都可以相似于一个jordan标准型。

可惜之处在于,我还没学相关的知识。非常可惜。所以这段跳过。

内积空间

为啥突然出现了“内积”?

南大课本:“我们需要引入正交矩阵,于是先介绍正交与内积的概念”

LADR:似乎就直接引入了

我也说两句吧。就是我们之前其实有几次用到了“垂直”的直观(比如在零空间那里)。但我们需要一个对“垂直”的严格描述。而且,有了“内积”,也就可以定义“长度”。

定义:内积空间,范数,正交

定义 内积:向量 u,v 的内积,记作 (u,v),应该满足如下性质:

只要满足如下性质,都可以是内积,因此内积并非唯一的。大家可以自行验证,高中学的 “向量点乘” 是一种内积。

对于实的向量而言,高中的“点乘”,即为:(u,v)=uivi

对于复的向量而言,我们定义内积为 (u,v)=uivi,这样可以满足“正”“定”。

上述两个定义的内积,叫做 欧几里得内积

对于 [l,r] 上定义的函数 f,g,我们也可以用积分定义“内积”:(f,g)=lrf(x)g(x)dx。发现它也满足上述性质。

对于欧几里得内积,我们可以取正实数 ci,定义 (u,v)=uivici,它依然是满足条件的内积。

根据同样的思想,我们也可以取一个 [l,r] 上正的函数 h(x)(f,g)=lrf(x)g(x)h(x)dx,依然是一种内积

定义 内积空间:有内积定义的向量空间叫做内积空间。

定义 范数:对于一个内积空间的向量 u,其范数为:||u||=(u,u)。“正性”保证了范数是非负实数。

定义 正交:内积空间的向量 u,v 正交,当且仅当 (u,v)=0。“正交”这个词的意思其实就是“垂直”。

正交,柯西不等式

正交矩阵

(特征值模为1)

实对称矩阵

(特征向量正交)

 

(大概列出来了接下来的内容大纲,先歇会)